//
//  LcFont.h
//  18Birdies
//
//  Created by Lc on 15/3/31.
//  Copyright (c) 2015年 Lc. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#define LC_COLOR_BLUE [UIColor colorWithHexString:@"10ACFF"]
#define LC_COLOR_BLUE_ACTIVE [UIColor colorWithHexString:@"0087CE"]
#define LC_COLOR_BLUE_OCEAN [UIColor colorWithHexString:@"0085FF"]
#define LC_COLOR_BLUE_LIGHT [UIColor colorWithHexString:@"E5F1FA"]
#define LC_COLOR_BLUE_LINE [UIColor colorWithHexString:@"0055A4"]
#define LC_COLOR_BLUE_SECOND [UIColor colorWithHexString:@"EDF6FF"]

#define LC_COLOR_DARK [UIColor blackColor]
#define LC_COLOR_DARK_ACTIVE [UIColor blackColor]

#define LC_COLOR_GRAY [UIColor colorWithHexString:@"9B9B9B"]
#define LC_COLOR_SECONDARY_GRAY [UIColor colorWithHexString:@"4A4A4A"]
#define LC_COLOR_THIRD_GRAY [UIColor colorWithHexString:@"9B9B9B"]
#define LC_COLOR_FOURTH_GRAY [UIColor colorWithHexString:@"A2AAB1"]
#define LC_COLOR_FIFTH_GRAY [UIColor colorWithHexString:@"C0C0C3"]
#define LC_COLOR_BLACKGROUND_GRAY [UIColor colorWithHexString:@"E9ECF2"]
#define LC_COLOR_INPUT_TINT [UIColor colorWithHexString:@"F6F8FC"]
#define LC_COLOR_INPUT_BACKGROUND [UIColor colorWithHexString:@"F9F9F9"]

#define LC_COLOR_WHITE [UIColor colorWithHexString:@"FFFFFF"]
#define LC_COLOR_WHITE_ACTIVE [UIColor colorWithHexString:@"330087CE"]
#define LC_COLOR_WHITE_60 [UIColor colorWithHexString:@"99FFFFFF"]
#define LC_COLOR_WHITE_80 [UIColor colorWithHexString:@"CCFFFFFF"]

#define LC_COLOR_BACKGROUND_WHITE LC_COLOR_WHITE
#define LC_COLOR_BACKGROUND_BLUE_GRAY_1 [UIColor colorWithHexString:@"5D5D6E"]
#define LC_COLOR_BACKGROUND_BLUE_GRAY_2 [UIColor colorWithHexString:@"383850"]
#define LC_COLOR_BACKGROUND_BLUE_GRAY_3 [UIColor colorWithHexString:@"27273D"]
#define LC_COLOR_BACKGROUND_BLUE_BLACK [UIColor colorWithHexString:@"272831"]
#define LC_COLOR_BACKGROUND_LIGHT_YELLOW [UIColor colorWithHexString:@"FFF8D8"]
#define LC_COLOR_BACKGROUND_LINE [UIColor colorWithHexString:@"EFEFEF"]

#define LC_COLOR_RED [UIColor colorWithHexString:@"F03454"]
#define LC_COLOR_RED_60 [UIColor colorWithHexString:@"F35D77"]
#define LC_COLOR_RED_LINE [UIColor colorWithHexString:@"DC4C00"]

#define LC_COLOR_GAME [UIColor colorWithHexString:@"FFBD00"]
#define LC_COLOR_SAND [UIColor colorWithHexString:@"B4A37C"]
#define LC_COLOR_WARNING [UIColor colorWithHexString:@"F35252"]
#define LC_COLOR_TEAM_ONE LC_COLOR_GRAY
#define LC_COLOR_TEAM_TWO LC_COLOR_BLUE
#define LC_COLOR_GOLD [UIColor colorWithHexString:@"FDC874"]
#define LC_COLOR_COIN [UIColor colorWithHexString:@"FCBD61"]
#define LC_COLOR_PINK [UIColor colorWithHexString:@"F8E7E5"]
#define LC_COLOR_WIN LC_COLOR_GREEN
#define LC_COLOR_LOSS [UIColor colorWithHexString:@"FF3B2F"]
#define LC_COLOR_PAR LC_COLOR_GREEN

#define LC_COLOR_PINEAPPLE_ORANGE [UIColor colorWithHexString:@"FF8D23"]
#define LC_COLOR_ORANGE [UIColor colorWithHexString:@"ED7100"]
#define LC_COLOR_ORANGE_ACTIVE [UIColor colorWithHexString:@"DB6400"]
#define LC_COLOR_LEMON [UIColor colorWithHexString:@"FEC41B"]

#define LC_COLOR_PURPLE [UIColor colorWithHexString:@"CB22F2"]
#define LC_COLOR_GREEN [UIColor colorWithHexString:@"20CA40"]

typedef enum {
  LC_FONT_WEIGHT_THIN,
  LC_FONT_WEIGHT_LIGHT,
  LC_FONT_WEIGHT_REGULAR,
  LC_FONT_WEIGHT_MEDIUM,
  LC_FONT_WEIGHT_BOLD,
  LC_FONT_WEIGHT_HEAVY,
} LcFontWeight;

@interface LcFont : NSObject <NSCopying>

typedef LcFont* (^FontSizeBlock)(CGFloat fontSize);
typedef LcFont* (^FontWeightBlock)(LcFontWeight fontWeight);
typedef LcFont* (^FontColorBlock)(UIColor* fontWeight);
typedef LcFont* (^FontBlock)(void);

+ (LcFont*)fontWithColor:(UIColor*)color fontWeight:(LcFontWeight)weight andFontSize:(int)size;

@property(nonatomic, strong, readonly) UIFont* font;
@property(nonatomic, strong, readonly) UIColor* color;
@property(nonatomic, assign, readonly) CGFloat size;
@property(nonatomic, assign, readonly) LcFontWeight weight;

@property(nonatomic, strong, readonly) FontSizeBlock fontSize;
@property(nonatomic, strong, readonly) FontWeightBlock fontWeight;
@property(nonatomic, strong, readonly) FontColorBlock fontColor;

// dark
+ (LcFont*)dt60;
+ (LcFont*)dm40;
+ (LcFont*)dr29;
+ (LcFont*)dr28;
+ (LcFont*)dm28;
+ (LcFont*)dm26;
+ (LcFont*)dr24;
+ (LcFont*)db24;
+ (LcFont*)dr20;
+ (LcFont*)dl20;
+ (LcFont*)dm20;
+ (LcFont*)db20;
+ (LcFont*)dr17;
+ (LcFont*)db17;
+ (LcFont*)dm17;
+ (LcFont*)dl15;
+ (LcFont*)dm15;
+ (LcFont*)dr14;
+ (LcFont*)dm14;
+ (LcFont*)db14;
+ (LcFont*)dl14;
+ (LcFont*)db12;
+ (LcFont*)dl12;
+ (LcFont*)dr12;
+ (LcFont*)dm12;
+ (LcFont*)dm11;
+ (LcFont*)db11;
+ (LcFont*)dr11;
+ (LcFont*)dr10;

// blue
+ (LcFont*)bt31;
+ (LcFont*)bt25;
+ (LcFont*)bt20;
+ (LcFont*)bb20;
+ (LcFont*)bm20;
+ (LcFont*)br20;
+ (LcFont*)br17;
+ (LcFont*)bm17;
+ (LcFont*)bb17;
+ (LcFont*)bb15;
+ (LcFont*)bb14;
+ (LcFont*)bm14;
+ (LcFont*)br14;
+ (LcFont*)bb12;
+ (LcFont*)bm12;
+ (LcFont*)bm11;
+ (LcFont*)bb11;
+ (LcFont*)br11;

// white
+ (LcFont*)wb32;
+ (LcFont*)wm26;
+ (LcFont*)wb20;
+ (LcFont*)wm20;
+ (LcFont*)wl20;
+ (LcFont*)wr24;
+ (LcFont*)wb24;
+ (LcFont*)wr20;
+ (LcFont*)wl22;
+ (LcFont*)wb22;
+ (LcFont*)wb17;
+ (LcFont*)wl17;
+ (LcFont*)wr17;
+ (LcFont*)wm17;
+ (LcFont*)wb15;
+ (LcFont*)wb14;
+ (LcFont*)wm14;
+ (LcFont*)wr14;
+ (LcFont*)wl14;
+ (LcFont*)wm12;
+ (LcFont*)wr12;
+ (LcFont*)wb12;
+ (LcFont*)wb11;
+ (LcFont*)wm11;
+ (LcFont*)wr11;
+ (LcFont*)wr10;
+ (LcFont*)wb10;
+ (LcFont*)wh10;
+ (LcFont*)wr9;
+ (LcFont*)w60r14;
+ (LcFont*)w80m17;
+ (LcFont*)w80r14;
+ (LcFont*)w80m14;
+ (LcFont*)w80b14;
+ (LcFont*)w60m14;

// gray
+ (LcFont*)gr29;
+ (LcFont*)gm26;
+ (LcFont*)gl20;
+ (LcFont*)gb20;
+ (LcFont*)gm20;
+ (LcFont*)gr20;
+ (LcFont*)gr17;
+ (LcFont*)gm17;
+ (LcFont*)gb17;
+ (LcFont*)gr14;
+ (LcFont*)gm14;
+ (LcFont*)gb14;
+ (LcFont*)gr12;
+ (LcFont*)gm12;
+ (LcFont*)gb12;
+ (LcFont*)gm11;
+ (LcFont*)gb11;
+ (LcFont*)gr11;
+ (LcFont*)gb10;
+ (LcFont*)gr10;

// secondary gray
+ (LcFont*)sgr29;
+ (LcFont*)sgb17;
+ (LcFont*)sgr17;
+ (LcFont*)sgb14;
+ (LcFont*)sgr14;
+ (LcFont*)sgr12;
+ (LcFont*)sgb12;
+ (LcFont*)sgm11;
+ (LcFont*)sgr11;
+ (LcFont*)sgr10;

// third gray
+ (LcFont*)tgr14;
+ (LcFont*)tgm14;
+ (LcFont*)tgb14;
+ (LcFont*)tgb18;

// fifth gray
+ (LcFont*)fgr10;
+ (LcFont*)fgr14;
+ (LcFont*)fgm14;
+ (LcFont*)fgb14;
+ (LcFont*)fgb18;

// gold
+ (LcFont*)cb17;
+ (LcFont*)cb14;
+ (LcFont*)cb12;

// sand
+ (LcFont*)st22;
+ (LcFont*)sl20;
+ (LcFont*)sr17;
+ (LcFont*)sb14;
+ (LcFont*)sr14;
+ (LcFont*)sb12;
+ (LcFont*)sr12;

// red warning
+ (LcFont*)rr17;
+ (LcFont*)rr14;
+ (LcFont*)rb14;
+ (LcFont*)rr11;

+ (LcFont*)yardageWb14;
+ (LcFont*)yardageWr14;
+ (LcFont*)yardageWr17;
+ (LcFont*)yardageBb19;
+ (LcFont*)yardageWb22;
+ (LcFont*)yardageWr24;
+ (LcFont*)yardageGr29;

+ (LcFont*)caddyWb10;
+ (LcFont*)caddyWb14;
+ (LcFont*)caddyWr14;
+ (LcFont*)caddyBb19;
+ (LcFont*)caddyWr24;
+ (LcFont*)caddyGr29;
+ (LcFont*)caddyWb32;
+ (LcFont*)caddyWb11;

+ (LcFont*)team1b14;
+ (LcFont*)team2b14;

+ (LcFont*)jb14;

// green
+ (LcFont*)er24;
+ (LcFont*)eb17;
+ (LcFont*)eb14;
+ (LcFont*)em14;
+ (LcFont*)er14;

// red loss
+ (LcFont*)lrr24;
+ (LcFont*)lrm20;
+ (LcFont*)lrb17;
+ (LcFont*)lrm17;
+ (LcFont*)lrb14;
+ (LcFont*)lrm14;
+ (LcFont*)lrr14;
+ (LcFont*)lrb11;

// orange
+ (LcFont*)ob28;
+ (LcFont*)ob24;
+ (LcFont*)ob17;
+ (LcFont*)or17;
+ (LcFont*)or14;
+ (LcFont*)ob11;

// pineapple orange
+ (LcFont*)pob14;
+ (LcFont*)pob17;
+ (LcFont*)pob20;

// blue-gray-1
+ (LcFont*)g1b12;

// Satisfy-Regular
+ (LcFont*)satisfyWr24;

// size = size * scale
- (LcFont*)scaledFont:(float)scale;

@end
